package com.chen.web;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


// 在使用直接使用 tomcat 的web项目中 tomcat就相当于spring中IOC容器专门用来管理的servlet对象的
// 每一个servlet都相当于一个IOC容器中的Bean对象
// 在这里就是在研究servlet对象的生命周期
/*
 * 实例化          在tomcat启动的时候进行实例化 |
 * 初始化          一旦servlet对象实例化后进行立即执行
 * 接收请求         每次请求都会执行这个方法
 * 销毁            关闭tomcat就执行
 * */
// loadOnStartup 属性设置servlet在tomcat容器中实例化的时机或者顺序
// 属性：整数
// 默认值是 -1 代表在第一次接收请求再进行实例化
// 其他正整数数：代表在tomcat启动的就进行实例化servlet，数字代表到第几个servlet进行实例化
// 一般自定义的servlet loadOnStartup 设置大于 5 的值 ，因为在tomcat内部有自己的servlet
@WebServlet(value = "/s2", loadOnStartup = 6)
public class Servlet02 extends HttpServlet {
    public Servlet02() {
        System.out.println("构造方法执行了");
    }

    @Override
    public void init() throws ServletException {
        System.out.println("初始方法执行了");
    }

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("service方法执行了");
    }

    @Override
    public void destroy() {
        System.out.println("销毁方法执行了");
    }
}
